package com.cnfangmao.masterdata.common.util;

import java.util.List;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;

import com.cnfangmao.masterdata.model.Account;
import com.cnfangmao.masterdata.model.Permission;


public class UserUtils {

	/**
	 * @description: 获取当前登录的账号信息 
	 * @author: chenxc
	 * @date: 2020年4月20日 下午2:31:25
	 * @param: @return      
	 * @return: Account      
	 * @throws
	 */
	public static Account getCurrentUser() {
		return (Account) SecurityUtils.getSubject().getPrincipal();
	}

	public static Session getSession() {
		return SecurityUtils.getSubject().getSession();
	}
	
	/**
	 * @description: 获取当前账号Id 
	 * @author: chenxc
	 * @date: 2020年4月20日 下午2:27:46
	 * @param: @return      
	 * @return: String      
	 * @throws
	 */
	public static String getUserId(){
		return getCurrentUser().getUserId();
	}
	
	/**
	 * @description: 获取当前登录的账号编码 
	 * @author: chenxc
	 * @date: 2020年4月20日 下午2:31:13
	 * @param: @return      
	 * @return: String      
	 * @throws
	 */
	public static String getUserCode(){
		return getCurrentUser().getUserCode();
	}
	
	public static void setUserSession(Account account) {
		getSession().setAttribute("login_user", account);
	}

	@SuppressWarnings("unchecked")
	public static List<Permission> getCurrentPermissions() {
		List<Permission> list = (List<Permission>) getSession().getAttribute("user_permissions");

		return list;
	}

	public static void setPermissionSession(List<Permission> list) {
		getSession().setAttribute("user_permissions", list);
	}
}
